/**
 * 运行扩展
 */
import controConfig from '../init/controConfig'
import Middleware from '../kernel/middleware/middleware';
import controRoute from '../kernel/route/controRoute'

// 解析扩展 把扩展放到路由中
export function parsPlug() {
    // 获取扩展 ， 开始解析
    let config = controConfig.getPlug();
    // 遍历插件 每个插件元素基本上是函数
    for(let i in config){
        let plug = config[i];
        // 把生成的插件放到路由的插件库
        let index = controRoute.addPlug(createPlug(plug,i))
        // 判断上一个插件存不存在，存在就把现在的这个的地址给上个对象中的next
        if(controRoute.getPlug(index-1)){
            (controRoute.getPlug(index-1) as controllerStructure).next = controRoute.getPlug(index) as controllerStructure;
        }
    }
}

// 辅助解析
function createPlug(module:any,methodName:any) :controllerStructure {
    return Middleware.createMiddleware("",module,methodName,[])
}